import axios from "axios";
import Vue from "vue";
import router from "../router";
import { Toast } from "vant";
import qs from "querystring";

//判断环境
//开发环境 8080
if (process.env.NODE_ENV === "development") {
    Vue.prototype.$pre = "http://localhost:3000"
} else {
    //生产环境 3000
    Vue.prototype.$pre = ""
}

/*请求拦截：每一次发请求都要做的逻辑
请求拦截回调函数：
    参数：组件发给后端的请求信息 {url:"",params:{},data:{},method:"get",headers:{}}
    返回值：后端收到的真正请求信息
*/
axios.interceptors.request.use((req) => {
    // 如果请求的地址不是登录，也不是注册，就要携带请求头
    if (req.url != "/api/login" && req.url !== "/api/register") {
        req.headers.authorization = JSON.parse(localStorage.getItem("userInfo")).token
    }
    // console.group("请求拦截");
    // console.log(req);
    // console.groupEnd()
    return req;
})

/* 响应拦截:每一次响应都要做的逻辑，在响应拦截中执行
响应拦截的回调函数：
    参数：后端返回的数据
    返回值：将后端返回过来的数据给组件
*/
axios.interceptors.response.use((res) => {
    // 统一打印
/*     console.group("此处是响应拦截,本次请求地址是：" + res.config.url)
    console.log(res);
    console.groupEnd(); */
    //统一处理一下失败
    if (res.data.code !== 200) {
        Toast(res.data.msg)
    }
    //统一处理掉线
    if (res.data.msg === "登录已过期或访问权限受限") {
        //跳转到登录页
        router.replace("/login")
    }
    //将后端返回过来的数据给组件
    return res;
})


// 首页的分类数据
export const getHomeCate = () => {
    return axios({
        url: "/api/getcate",
        method: "get",
    })
}

// 首页的轮播
export const getHomebanner = () => {
    return axios({
        url: "/api/getbanner",
        method: "get"
    })
}
// 登录
export const reqLogin = (user) => {
    return axios({
        url: "/api/login",
        method: "post",
        data: user
    })
}

// 注册
export const reqRegister = (user) => {
    return axios({
        url: "/api/register",
        method: "post",
        data: user
        /* { 
            phone:this.user.phone,
            nickname:this.user.nickname,
            passowrd:this.user.password
        }  */
    })
}

// 搜索
export const reqSearch = (kw) => {
    return axios({
        url: "/api/search",
        method: "get",
        params: {
            keywords: kw,
        }
    })
}

// 购物车
export const reqShop = (params) => {
    return axios({
        url: "/api/cartlist",
        params: params,
       /*  headers: {
            authorization: JSON.parse(localStorage.getItem("userInfo")).token
        } */
    })
}
// 加入购物车
export const reqAddShop = (p) => {
    return  axios({
        url:"/api/cartadd",
        method:"post",
        data:p,
        /* headers:{
          authorization:JSON.parse(localStorage.getItem("userInfo")).token,
        } */
    })
}
// 详情页
export const reqDetail = (id) => {
    return axios({
        url:"/api/getgoodsinfo",
        method:"get",
        params: {
          id:id
          }
      })
}

//分类商品
export const reqCateList = (id) => {
    return axios({
        url: "/api/getgoodlist",
        method: "get",
        params: {
          cateid: id,
          type: 1,
        },
      })
}

//首页商品
export const reqHomeGoods=()=>{
    return axios({
        url:"/api/gethortgoods"
    })
}
//商品分类
export const reqCates=()=>{
    return axios({
        url:"/api/getcates"
    })
}


//购物车修改
export const reqShopEdit=(params)=>{
    return axios({
        url:"/api/cartedit",
        method:"post",
        data: qs.stringify(params)
    })
}

//购物车删除
export const reqShopDel=(params)=>{
    return axios({
        url:"/api/cartdelete",
        method:"post",
        data: qs.stringify(params)
    })
}

// 地址列表
export const reqAddressList=(p)=>{
    return axios({
        url:"/api/addresslist",
        params:p
    })
}

// 地址添加
export const reqAddressAdd=(p)=>{
    return axios({
        url:"/api/addressadd",
        method:"post",
        data:qs.stringify(p)
    })
}

// 地址修改
export const reqAddressEdit=(p)=>{
    return axios({
        url:"/api/addressedit",
        method:"post",
        data:qs.stringify(p)
    })
}

// 订单生成
export const reqOrder=(p)=>{
    return axios({
        url:"/api/orderadd",
        method:"post",
        data:qs.stringify(p)
    })
}